﻿using Ndns.ServerHost.Abstractions.Features;
using System.Collections.Generic;
using System.Threading;

namespace Ndns.ServerHost.Abstractions
{
    public abstract class DnsContext
    {
        public abstract string TraceIdentifier { get; set; }
        public abstract IDictionary<object, object> Items { get; set; }
        public abstract ConnectionInfo Connection { get; }
        public abstract IFeatureCollection Features { get; }

        public abstract DnsRequest Request { get; }
        public abstract DnsResponse Response { get; }

        public abstract CancellationToken RequestAborted { get; set; }


        public abstract void Abort();
    }
}
